package com.aaa.tars.dao;

import com.aaa.tars.entity.Order;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 销售管理-订单主表(nOrder)表数据库访问层
 *
 * @author ghz
 * @since 2025-09-08 14:11:47
 */
@Repository
public interface OrderDao {
    Order queryById(Integer id);
    List<Order> queryByParam(Order order);
    long count(Order order);
    int insert(Order order);
    int update(Order order);
    int deleteById(Integer orderId);
    int updateStateByNo(Order order);
    List<Order> queryByTicketId(Integer ticketId);


    Order queryByNo(String orderNo);
    
    /**
     * 查询指定状态的订单
     * @param orderState 订单状态
     * @return 订单列表
     */
    List<Order> queryByOrderState(String orderState);
    
    /**
     * 查询指定状态且创建时间早于指定时间的订单
     * @param orderState 订单状态
     * @param createTime 创建时间阈值
     * @return 订单列表
     */
    List<Order> queryByOrderStateAndCreateTimeBefore(String orderState, Date createTime);
    
    /**
     * 根据游客ID查询订单
     * @param visitorId 游客ID
     * @return 订单列表
     */
    List<Order> queryByVisitorId(Integer visitorId);
}